import random

from auxi import *
import pygame

class Inimigo(pygame.sprite.Sprite):
    global imagens
    imagens = []

    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        imagens.append(carrega_imagem('aguia.png'))
        self.tela = pygame.display.get_surface()
        self.largura = self.tela.get_width()
        self.altura = self.tela.get_height()
        self.imagem = imagens[0]
        self.x = random.randint(20, self.largura - 20)
        self.y = random.randint(20, self.altura - 20)
        self.lado = 0
        self.direcao = random.choice(['cima', 'direita', 'baixo', 'esquerda', 'cima_d', 'baixo_d', 'baixo_e', 'cima_e'])

    def checa_colisao(self, snake):
        for x, y in snake:
            if x >= self.x and y >= self.y and y <= self.y + self.imagem.get_height() - 6 and x <= self.x + self.imagem.get_width():
                return True

    def update(self):

        if self.x <= 0:
            self.direcao = random.choice(['baixo', 'baixo_e', 'baixo_d'])
        elif self.y <= 0:
            self.direcao = random.choice(['direita', 'baixo_d', 'cima_d'])
        elif self.x + self.imagem.get_width() >= self.largura:
            self.direcao = random.choice(['esquerda', 'baixo_e', 'cima_e'])
        elif self.y + self.imagem.get_height() - 6 >= self.altura:
            self.direcao = random.choice(['cima', 'cima_d', 'cima_e'])

        if self.direcao == 'cima':
            self.y = self.y - 0.5
        elif self.direcao == 'direita':
            self.x = self.x + 0.5
            self.lado = 0
        elif self.direcao == 'esquerda':
            self.y = self.y - 0.5
            self.lado = 1
        elif self.direcao == 'baixo':
            self.x = self.x + 0.5
        elif self.direcao == 'cima_d':
            self.x = self.x + 0.353
            self.y = self.y - 0.353
            self.lado = 0
        elif self.direcao == 'baixo_d':
            self.x = self.x + 0.353
            self.y = self.y + 0.353
            self.lado = 0
        elif self.direcao == 'baixo_e':
            self.x = self.x - 0.353
            self.y = self.y + 0.353
            self.lado = 1
        elif self.direcao == 'cima_e':
            self.x = self.x - 0.353
            self.y = self.y - 0.353
            self.lado = 1

        if self.lado == 0:
            self.imagem = imagens[0]
        elif self.lado == 1:
            self.imagem = pygame.transform.flip(imagens[0], 1, 0)

    def draw(self):
        self.tela.blit(self.imagem, (self.x, self.y, self.imagem.get_width(), self.imagem.get_height()))
